3分钟理解tintColor是个啥玩意 |
您所在的位置:网站首页 › hd color是什么 › 3分钟理解tintColor是个啥玩意 |
我讲到小概念,喜欢用简明的语句描述清楚。今天描述一下tintColor,喜欢读长篇大论的,我在后面附了传送门。 1.所有的常用控件,都有tintColor属性。其中,UIView也有这个属性,可想而知继承UIView的控件也都有tintColor了。 2.使用场景:当父视图更改了tintColor为red,那么它所有的一级子视图tintColor全部为red,除非你主动设置过子视图的tintColor。它再往下的子视图的tintColor则遵循直接父视图的tintColor 。 3.如果没有给任何视图指定过tintColor,系统会默认给原生控件指定一个tintColor,比如UIButton的title和UIProgressView的progress都是淡蓝色。 注意是原生控件,如果你的控件是自定义的,比如UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];这样初始化来的,系统就没有为Button 的title颜色指定为默认的蓝色tintColor。 如果你要使用tintColor,需要子类化它,然后在- (void)tintColorDidChange里面写上[self setTitleColor:self.tintColor forState:UIControlStateNormal],就OK了。 所以我猜想,系统默认将控件的某些颜色指定为tintColor的情况下,是因为系统控件的源码里面有上面这句set...Color: self.tintColor 。 示意图:
这个tintColor属性是从iOS7才开始引入的,个人认为苹果的目的是为了界面风格的统一性,因为从7开始,iOS摒弃了原有的拟物化风格而转为了扁平化。
参考传送门:https://www.shinobicontrols.com/blog/ios7-day-by-day-day-6-tint-color 中文版:http://www.cocoachina.com/ios/20150703/12363.html?utm_medium=referral&utm_source=pulsenews
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |